﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data;
using System.Data.Common;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using BibliotecaClases;

namespace Parque
{
    public partial class FLogin : Form
    {
        public FLogin()
        {
            InitializeComponent();
        }

        private void BTSalir_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("¿Realmente desea cerrar la aplicaión?", "Cerrar aplicación", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes)
            {
                Application.Exit();
            }  
        }

        private void BTEntrar_Click(object sender, EventArgs e)
        {
            if (tbUsuario.Text != "" && tbContrasenya.Text != "")
            {
                string s = SingletonCadenaConexion.Instancia.Cadena;

                SqlConnection c = new SqlConnection(s);
                try
                {
                    c.Open();
                    SqlCommand com = new SqlCommand("Select * from Empleados", c);
                    SqlDataReader dr = com.ExecuteReader();
                    bool encontrado = false;
                    string tipo = "";
                    string login = "";
                    string password = "";
                    string nombre = "";
                    string apellidos = "";
                    string dni = "";
                    while (dr.Read() && encontrado == false)
                    {
                        if (tbUsuario.Text == dr["login"].ToString())
                        {
                            encontrado = true;
                            login = dr["login"].ToString();
                            password = dr["password"].ToString();
                            tipo = dr["tipo"].ToString();
                            dni = dr["dni"].ToString();
                            nombre = dr["nombre"].ToString();
                            apellidos = dr["apellidos"].ToString();
                        }
                    }
                    if (encontrado == true)
                    {
                        if (tbContrasenya.Text == password)
                        {
                            if (tipo == "Administrador")
                            {
                                FBase fbase = new FBase(nombre, apellidos, dni, login, password, tipo);
                                fbase.Show();
                                this.Hide();
                            }
                            else if (tipo == "Vendedor (Entradas)")
                            {
                                FBaseVendedor fbaseVendedor = new FBaseVendedor(nombre, apellidos, dni, login, password, tipo);
                                fbaseVendedor.Show();
                                this.Hide();
                            }
                            else if (tipo == "Mecanico")
                            {
                                FBaseMecanico fbaseVendedor = new FBaseMecanico(nombre, apellidos, dni, login, password, tipo);
                                fbaseVendedor.Show();
                                this.Hide();
                            }
                            else if (tipo == "Dependiente (Tienda)")
                            {
                                FBaseDependiente fbaseDependiente = new FBaseDependiente(nombre, apellidos, dni, login, password, tipo);
                                fbaseDependiente.Show();
                                this.Hide();
                            }
                            else if (tipo == "Animador")
                            {
                                FBaseAnimadores fbaseAnimadores = new FBaseAnimadores(nombre, apellidos, dni, login, password, tipo);
                                fbaseAnimadores.Show();
                                this.Hide();
                            }
                        }
                        else
                        {
                            MessageBox.Show("ACCESO DENEGADO. ", "Inicio de sesión", MessageBoxButtons.OK,
                            MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
                            tbUsuario.Focus();
                        }
                    }
                    else
                    {
                        MessageBox.Show("ACCESO DENEGADO. ", "Inicio de sesión", MessageBoxButtons.OK,
                        MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
                        tbUsuario.Focus();
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Excepción! \n" + ex.Message, "Inicio de sesión", MessageBoxButtons.OK,
                        MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
                }
                finally
                {
                    c.Close();
                }
            }
            else
            {
                if (tbUsuario.Text == "")
                {
                    MessageBox.Show("Introduce un usuario", "Inicio sesión", MessageBoxButtons.OK,
                        MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
                    tbUsuario.Focus();
                }
                else
                {
                    MessageBox.Show("Introduce una contraseña", "Inicio sesión", MessageBoxButtons.OK,
                        MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
                    tbContrasenya.Focus();
                }
            }
        }
    }
}
